require(__dirname).test({
  xml:
    '<root>' +
    '<plain attr="normal" />' +
    '<ns1 xmlns="uri:default">' +
    '<plain attr="normal"/>' +
    '</ns1>' +
    '<ns2 xmlns:a="uri:nsa">' +
    '<plain attr="normal"/>' +
    '<a:ns a:attr="namespaced"/>' +
    '</ns2>' +
    '</root>',
  expect: [
    [
      'opentagstart',
      {
        name: 'root',
        attributes: {},
        ns: {},
      },
    ],
    [
      'opentag',
      {
        name: 'root',
        prefix: '',
        local: 'root',
        uri: '',
        attributes: {},
        ns: {},
        isSelfClosing: false,
      },
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        attributes: {},
        ns: {},
      },
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: '',
      },
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: '',
        attributes: {
          attr: {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: '',
          },
        },
        ns: {},
        isSelfClosing: true,
      },
    ],
    ['closetag', 'plain'],
    [
      'opentagstart',
      {
        name: 'ns1',
        attributes: {},
        ns: {},
      },
    ],
    [
      'opennamespace',
      {
        prefix: '',
        uri: 'uri:default',
      },
    ],
    [
      'attribute',
      {
        name: 'xmlns',
        value: 'uri:default',
        prefix: 'xmlns',
        local: '',
        uri: 'http://www.w3.org/2000/xmlns/',
      },
    ],
    [
      'opentag',
      {
        name: 'ns1',
        prefix: '',
        local: 'ns1',
        uri: 'uri:default',
        attributes: {
          xmlns: {
            name: 'xmlns',
            value: 'uri:default',
            prefix: 'xmlns',
            local: '',
            uri: 'http://www.w3.org/2000/xmlns/',
          },
        },
        ns: {
          '': 'uri:default',
        },
        isSelfClosing: false,
      },
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        ns: {
          '': 'uri:default',
        },
        attributes: {},
      },
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: '',
      },
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: 'uri:default',
        ns: {
          '': 'uri:default',
        },
        attributes: {
          attr: {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: '',
          },
        },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'plain'],
    ['closetag', 'ns1'],
    [
      'closenamespace',
      {
        prefix: '',
        uri: 'uri:default',
      },
    ],
    [
      'opentagstart',
      {
        name: 'ns2',
        attributes: {},
        ns: {},
      },
    ],
    [
      'opennamespace',
      {
        prefix: 'a',
        uri: 'uri:nsa',
      },
    ],
    [
      'attribute',
      {
        name: 'xmlns:a',
        value: 'uri:nsa',
        prefix: 'xmlns',
        local: 'a',
        uri: 'http://www.w3.org/2000/xmlns/',
      },
    ],
    [
      'opentag',
      {
        name: 'ns2',
        prefix: '',
        local: 'ns2',
        uri: '',
        attributes: {
          'xmlns:a': {
            name: 'xmlns:a',
            value: 'uri:nsa',
            prefix: 'xmlns',
            local: 'a',
            uri: 'http://www.w3.org/2000/xmlns/',
          },
        },
        ns: {
          a: 'uri:nsa',
        },
        isSelfClosing: false,
      },
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        attributes: {},
        ns: {
          a: 'uri:nsa',
        },
      },
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: '',
      },
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: '',
        attributes: {
          attr: {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: '',
          },
        },
        ns: {
          a: 'uri:nsa',
        },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'plain'],
    [
      'opentagstart',
      {
        name: 'a:ns',
        attributes: {},
        ns: { a: 'uri:nsa' },
      },
    ],
    [
      'attribute',
      {
        name: 'a:attr',
        value: 'namespaced',
        prefix: 'a',
        local: 'attr',
        uri: 'uri:nsa',
      },
    ],
    [
      'opentag',
      {
        name: 'a:ns',
        prefix: 'a',
        local: 'ns',
        uri: 'uri:nsa',
        attributes: {
          'a:attr': {
            name: 'a:attr',
            value: 'namespaced',
            prefix: 'a',
            local: 'attr',
            uri: 'uri:nsa',
          },
        },
        ns: { a: 'uri:nsa' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'a:ns'],
    ['closetag', 'ns2'],
    [
      'closenamespace',
      {
        prefix: 'a',
        uri: 'uri:nsa',
      },
    ],
    ['closetag', 'root'],
  ],
  strict: true,
  opt: {
    xmlns: true,
  },
})
